#ifndef _OPCJE_H_
#define _OPCJE_H_
#include "eeprom.h"

#define AdresTrybPracy 					8
#define AdresPredkosc 					9
#define AdresKierunek 					10
#define AdresZezwolenieNaStart 			11
#define AdresZmianaOpoznienia			12
#define AdresCzasJazdy					13
#define AdresCzasJazdyPlusMinus			14
#define AdresCzasPostoju				15
#define AdresCzasPostojuPlusMinus		16
#define AdresZmianaOpoznieniaPlusMinus	17

//Tryby pracy
#define StalaPredkosc 	'S'
#define LosowaJazda 	'L'
#define DuzyTor			'M'
#define Gwiazda			'G'

volatile unsigned char TrybPracy;
volatile unsigned char Predkosc;
// GOLEFT 	L
// GORIGHT 	P
volatile unsigned char Kierunek;
// Tak '1'
// Nie '0'
volatile unsigned char Zezwolenie;
volatile unsigned char dOpoznienie;
volatile unsigned char dOpoznieniePlusMinus;
volatile unsigned char CzasJazdy;
volatile unsigned char CzasJazdyPlusMinus;
volatile unsigned char CzasPostoju;
volatile unsigned char CzasPostojuPlusMinus;

#define ZAPISZ(co) inline void OPCJE_zapisz##co(unsigned char co){EEPROM_write(Adres##co, co );}
#define ODCZYTAJ(co) inline unsigned char OPCJE_odczytaj##co() {return EEPROM_read(Adres##co);}
#define OPCJA(co) ZAPISZ(co);ODCZYTAJ(co);

OPCJA(TrybPracy)
OPCJA(Predkosc)
OPCJA(Kierunek)
OPCJA(ZezwolenieNaStart)
OPCJA(ZmianaOpoznienia)
OPCJA(ZmianaOpoznieniaPlusMinus)
OPCJA(CzasJazdy)
OPCJA(CzasJazdyPlusMinus)
OPCJA(CzasPostoju)
OPCJA(CzasPostojuPlusMinus)

inline void OPCJE_init()
{
	TrybPracy = OPCJE_odczytajTrybPracy();
	Kierunek = OPCJE_odczytajKierunek();
	Predkosc = OPCJE_odczytajPredkosc();
	Zezwolenie = OPCJE_odczytajZezwolenieNaStart();
	dOpoznienie = OPCJE_odczytajZmianaOpoznienia();
	dOpoznieniePlusMinus = OPCJE_odczytajZmianaOpoznieniaPlusMinus();
	CzasJazdy = OPCJE_odczytajCzasJazdy();
	CzasJazdyPlusMinus = OPCJE_odczytajCzasJazdyPlusMinus();
	CzasPostoju = OPCJE_odczytajCzasPostoju();
	CzasPostojuPlusMinus = OPCJE_odczytajCzasPostojuPlusMinus();
}

#endif
